#ifndef CAMERA_H_
#define CAMERA_H_

#include "Matrix4.hpp"
#include "glew.h"
#include "Vector3.hpp"
#include "Logger.hpp"

#include <cmath>
#include <cassert>

class Camera
{
public:
	Camera();
		
	// Use this camera's position and orientation
	void apply();

    float x() const;
    float y() const;
    float z() const;
    void setPosition( float newX, float newY, float newZ );
    void translate( float dx, float dy, float dz );

    float rotX() const;
    float rotY() const;
    float rotZ() const;
    void setRotation( float newRX, float newRY, float newRZ );
    void rotate( float drx, float dry, float drz );

protected:
    float m_x, m_y, m_z;
    float m_rotX, m_rotY, m_rotZ;
};

#endif
